package com.quartet.modules.multimedia.dao;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.quartet.modules.multimedia.dto.MediaCountResponseDto;
import com.quartet.modules.multimedia.entity.TMultimedia;
import com.quartet.modules.statistics.dto.DataStatisticsGroupByTimeResponseDto;
import com.quartet.modules.statistics.dto.DataStatisticsRequestDto;
import com.quartet.modules.statistics.dto.StatisticsRequestDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 *
 * @author makejava
 * @since 2021-08-09 11:09:15
 */
public interface TMultimediaDao extends BaseMapper<TMultimedia> {

    /**
     * 按照分类分组查询个数
     * @param statisticsRequestDto
     * @return
     */
    List<MediaCountResponseDto> queryMultimediaCountGroupType(@Param("statisticsRequestDto") StatisticsRequestDto statisticsRequestDto, @Param("type") String type);

    /**
     * 按照客户分组查询录音时长
     * @param statisticsRequestDto
     * @return
     */
    List<MediaCountResponseDto> queryMultimediaTime(StatisticsRequestDto statisticsRequestDto);

    /**
     * 按照小时查询抓拍/录音/视频数
     * @param dataStatisticsRequestDto
     * @return
     */
    List<DataStatisticsGroupByTimeResponseDto> queryMultimediaCountGroupTimeHour(@Param("dataStatisticsRequestDto") DataStatisticsRequestDto  dataStatisticsRequestDto, @Param("type") String type);

    /**
     * 按照天查询抓拍/录音/视频数
     * @param dataStatisticsRequestDto
     * @return
     */
    List<DataStatisticsGroupByTimeResponseDto> queryMultimediaCountGroupTimeDay(@Param("dataStatisticsRequestDto") DataStatisticsRequestDto  dataStatisticsRequestDto, @Param("type") String type);

    /**
     * 按照月查询抓拍/录音/视频数
     * @param dataStatisticsRequestDto
     * @return
     */
    List<DataStatisticsGroupByTimeResponseDto> queryMultimediaCountGroupTimeMonth(@Param("dataStatisticsRequestDto") DataStatisticsRequestDto  dataStatisticsRequestDto, @Param("type") String type);

    /**
     * 按照小时查询录音时长
     * @param dataStatisticsRequestDto
     * @return
     */
    List<DataStatisticsGroupByTimeResponseDto> queryMultimediaTimeHour(DataStatisticsRequestDto dataStatisticsRequestDto);

    /**
     * 按照天查询录音时长
     * @param dataStatisticsRequestDto
     * @return
     */
    List<DataStatisticsGroupByTimeResponseDto> queryMultimediaTimeDay(DataStatisticsRequestDto dataStatisticsRequestDto);

    /**
     * 按照月查询录音时长
     * @param dataStatisticsRequestDto
     * @return
     */
    List<DataStatisticsGroupByTimeResponseDto> queryMultimediaTimeMonth(DataStatisticsRequestDto dataStatisticsRequestDto);
}